/*
 * @Author: tangyuhui 317972442@qq.com
 * @Date: 2024-08-29 18:49:17
 * @LastEditors: tangyuhui 317972442@qq.com
 * @LastEditTime: 2024-08-29 20:57:11
 */
const fs = require('fs');
const path = require('path');

/**
 * 递归复制目录和文件
 * @param {string} src - 源目录路径
 * @param {string} dest - 目标目录路径
 */
function copyDirectory(src, dest) {
  // 确保目标目录存在，如果不存在则创建
  if (!fs.existsSync(dest)) {
    fs.mkdirSync(dest, { recursive: true });
  }

  // 读取源目录中的所有文件和子目录
  const entries = fs.readdirSync(src, { withFileTypes: true });

  for (const entry of entries) {
    const srcPath = path.join(src, entry.name);
    const destPath = path.join(dest, entry.name);

    if (entry.isDirectory()) {
      // 如果是目录，则递归复制
      copyDirectory(srcPath, destPath);
    } else {
      // 如果是文件，则复制文件
      fs.copyFileSync(srcPath, destPath);
    }
  }
}

// 定义源目录和目标目录
const srcDirMain = path.join(__dirname, '../distmain');
const srcDirIife = path.join(__dirname, '../distiife');
const destDir = path.join(__dirname, '../dist');

// 复制第一个源目录
copyDirectory(srcDirMain, destDir);
// 复制第二个源目录
copyDirectory(srcDirIife, destDir);

// 删除文件夹
fs.rm(srcDirMain, { recursive: true }, (err) => {
  if (err) throw err;
});
fs.rm(srcDirIife, { recursive: true }, (err) => {
  if (err) throw err;
});